Interactive applications

ABSTRACT

Disclosed are various embodiments to facilitate interactive experiences. Interactive content includes video content that is streamed to a client device, such as a set-top box. Complementary content is transmitted to a controller device, such as a tablet computing system and/or smartphone. Input obtained from the controller device can affect an update to the video content and/or complementary content.

BACKGROUND

Interactive content is often consumed via personal computing devices,such as tablet devices, personal computers, and/or smartphones.Non-interactive streaming video content is often consumed viatelevisions, set-top boxes, and/or personal computing devices.Interactive games are often consumed via personal computing devicesand/or gaming consoles where user feedback and/or inputs are obtainedvia the computing device and/or gaming console on which the content isconsumed.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the invention can be better understood with reference tothe following drawings. The components in the drawings are notnecessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the present invention. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a drawing of one example of a client device and controllerfacilitating an interactive experience according to various embodimentsof the disclosure.

FIG. 2 is a drawing of a networked environment facilitating aninteractive experience by an interactivity application according tovarious embodiments of the disclosure.

FIGS. 3A-3B is a drawing of an alternative example of a client deviceand controller facilitating an interactive experience according tovarious embodiments of the disclosure.

FIGS. 4-5 are flowcharts illustrating examples of functionalityimplemented as portions of the interactivity application executed in acomputing environment in the networked environment of FIG. 2 accordingto various embodiments of the present disclosure.

FIG. 6 is a schematic block diagram that provides one exampleillustration of a computing environment employed in the networkedenvironment of FIG. 2 according to various embodiments of the presentdisclosure.

DETAILED DESCRIPTION

Embodiments of the present disclosure are directed to facilitatinginteractive applications that are, at least in part, remotely executedover a network. Applications, such as games, educational applications,and/or other interactive content, can employ multiple client devicesthat are in communication via a network with a computing environment, inwhich interactive content is executed. To this end, video, audio, and/orother data generated by the interactive application may be sent over thenetwork to a remotely located client device. Input commands for theinteractive application may be obtained over the network from theremotely located client devices and provided to the interactiveapplication.

In one scenario, one client device can be configured to render videocontent on a display device, such as a television, while another clientdevice can be configured as a controller and/or second screen device toprovide complementary content in tandem with the video content shown onthe display device. For example, a controller can comprise a tabletdevice that is equipped with a touchscreen input device and/or otherform of input device.

As one example, illustrated in FIG. 1, shown is an environmentillustrating an interactive experience facilitated by embodiments of thepresent disclosure. FIG. 1 depicts an environment 100 in which a clientdevice 102 is coupled to a display device 104. The client device 102 isin communication via a network with a computing environment from whichinteractive content is retrieved and which the client device 102 renderson the display device 104. In the depicted example, the client device102 facilitates rendering of video content on the display device 104. Inone embodiment, a client device 102 can comprise a set-top box, apersonal computer, or any other device that can communicate via anetwork as well as render video on a display device 104.

The environment 100 also illustrates a controller device 207 that isindependently in communication via a network with a computingenvironment from which interactive content is retrieved. In the depictedexample, the controller device 207 can render complementary content thatis associated with the interactive content, which in the case of FIG. 1is a high-twitch-action video game where content associated with thegame is rendered on both devices and user inputs can be obtained fromthe controller device 207. As will be described herein, interactivecontent can take many forms and may also involve a multi-user experiencewhere multiple users are providing inputs to the computing environmentvia a controller device 207 as well as viewing complementary content onmultiple controller devices 207 that may or may not be disparatelylocated.

With reference to FIG. 2, shown is a networked environment 200 accordingto various embodiments. The networked environment 200 includes acomputing environment 203 and at least one client device 206, which arein data communication with each other via a network 209. The network 209may include, for example, the Internet, intranets, extranets, wide areanetworks (WANs), local area networks (LANs), wired networks, wirelessnetworks, or other suitable networks, etc., or any combination of two ormore such networks.

The computing environment 203 may comprise, for example, a servercomputer or any other system providing computing capability.Alternatively, the computing environment 203 may employ a plurality ofcomputing devices that are arranged, for example, in one or more serverbanks or computer banks or other arrangements. Such computing devicesmay be located in a single installation or may be distributed among manydifferent geographical locations. For example, the computing environment203 may include a plurality of computing devices that together maycomprise a cloud computing resource, a grid computing resource, and/orany other distributed computing arrangement. In some cases, thecomputing environment 203 may correspond to an elastic computingresource where the allotted capacity of processing, network, storage, orother computing-related resources may vary over time.

Various applications and/or other functionality may be executed in thecomputing environment 203 according to various embodiments. Also,various data is stored in a data store 212 that is accessible to thecomputing environment 203. The data store 212 may be representative of aplurality of data stores 212 as can be appreciated. The data stored inthe data store 212, for example, is associated with the operation of thevarious applications and/or functional entities described below.

The components executed on the computing environment 203, for example,include an interactivity application 215, a plurality of interactivecontent 221 a . . . 221N, and other applications, services, processes,systems, engines, or functionality not discussed in detail herein. Theinteractivity application 215 may correspond to a type of applicationsession server. The interactivity application 215 is executed to launchinteractive content 221 sessions in response to requests from users. Inthis sense, the interactivity application 215 establishes an interactivecontent 221 session corresponding to an interactive application 227 thatis requested by a user via a controller 207 and/or client 206. Theinteractivity application 215 is also executed to capture input data 225from the clients 206 and/or controllers 207 and provide the input data225 to the interactive content 221 session.

The interactivity application 215 is also executed to send video content223 and/or complementary content 224 that is captured from theinteractive content 221 to the clients 206 and/or controllers 207. Theinteractivity application 215 may communicate with a client 206 and/orcontroller 207 over various protocols such as, for example, hypertexttransfer protocol (HTTP), simple object access protocol (SOAP),representational state transfer (REST), real-time transport protocol(RTP), real time streaming protocol (RTSP), real time messaging protocol(RTMP), user datagram protocol (UDP), transmission control protocol(TCP), and/or other protocols for communicating data over the network209. The interactivity application 215 may be configured to maintainstate information 220 associated with the executing interactive content221.

In various embodiments, the interactivity application 215 may beconfigured to transmit video content as well as complementary contentassociated with particular interactive content. For example, videocontent can be streamed to a client 206, which can be rendered by theclient 206 on a display device in communication with the client 206.Additionally, complementary content, which can include video and othertypes of content, can be streamed to the controller 207 and rendered bythe controller 207 on a display. A given interactive content 221 sessioncan also incorporate multiple controllers 207 that are in communicationwith the interactivity application 215 via the network 209. In thissense, the interactivity application 215 can support a multi-userinteractive experience in which multiple users can participate in aninteractive experience via multiple controllers 207 that rendercomplementary content.

The interactive application 227 may correspond, for example, to a game,an interactive story, educational content, or other types ofapplications. As non-limiting examples, the interactive application 227may correspond to a high twitch-action game, a first-person shootergame, an action game, an adventure game, a party game, trivia game,educational games, a role-playing game, a simulation game, a strategygame, a vehicle simulation game, and/or other types of games. Theinteractive applications 227 may also correspond to mobile phoneapplications, computer-aided design (CAD) applications, computer-aidedmanufacturing (CAM) applications, photo manipulation applications, videoediting applications, office productivity applications, operatingsystems and associated applications, emulators for operating systems,architectures, and capabilities not present on a consumer device, andother applications and combinations of applications. The interactiveapplications 227 may further correspond to interactive movies, stories,and/or other forms of content in which progression of a storyline orprogress through an interactive world depends upon user input and/orselections via a controller 207.

The state information 220 that is maintained by the interactivityapplication 215 includes various data relating to application sessionsthat are currently active. For example, the state information 220 maytrack the users that are currently participating in an applicationsession, status information associated with the users, securitypermissions associated with the application session (e.g., who can orcannot join), and so on. In some embodiments, some or all of the stateinformation 220 may be discarded when an application session ends. Thedata stored in the data store 212 includes, for example, interactiveapplications 227, saved state data 233, user data 236, and potentiallyother data. The interactive applications 227 correspond to a library ofdifferent applications that provide interactive content 221 and that areavailable to be launched as interactive applications 227. Theinteractive applications 227 may correspond to executable code withinthe computing environment 203.

The saved state data 233 corresponds to session states that have beensaved by the interactivity application 215 and that correspond to aninteractive content 221 session. Because the interactive applications227 may be executed in a virtualized environment, the interactivityapplication 215 may write state information to a virtual location, whichis then mapped for storage in the data store 212 as the saved state data233. The saved state data 233 may correspond to data saved normally bythe interactive application 227 or may correspond to a memory image ofthe interactive application 227 that may be resumed at any time. Theuser data 236 includes various data related to the users of theinteractive applications 227, such as, for example, types of computingdevices associated with a user, security credentials, applicationpreferences, billing information, a listing of other users that arepermitted to join application sessions started by the user, and so on.The user data 236 may also identify media streaming devices, set-topboxes, tablet devices, smartphones, or other devices that are associatedwith a user's account. To this end, the user data 236 may include one ormore hardware or software identifiers that identify a device. In oneembodiment, a user may install a client application on a device andregister the device with the interactivity application 215 by providinguser authentication credentials, which can cause the device to beassociated with the user's account.

The client 206 and/or controller 207 are representative of one or moredevices that may be coupled to the network 209 and that can beindependently in communication with the computing environment 203. Theclients 206 and/or controllers 207 may be geographically diverse. Theclients 206 and/or controllers 207 may comprise, for example, aprocessor-based system such as a computer system. Such a computer systemmay be embodied in the form of a desktop computer, a laptop computer,personal digital assistants, cellular telephones, smartphones, set-topboxes, music players, web pads, tablet computer systems, game consoles,electronic book readers, or other devices with like capability.

The client 206 may include a display interface 239 that is coupled to adisplay device. A display device may comprise, for example, one or moredevices such as cathode ray tubes (CRTs), liquid crystal display (LCD)screens, gas plasma-based flat panel displays, LCD projectors, or othertypes of display devices, etc. The client 206 may therefore render videocontent provided by the interactivity application 215 on a displaydevice via the display interface 239. In some cases, such a displaydevice may be a display that is integrated within the client 206. Forexample, a client 206 may comprise a tablet device, a laptop computer, atelevision, or any other type of device having an integrated display.

In some embodiments, the client 206 and/or controller 207 may includeone or more input devices 242 and/or input devices 250, respectively.The input devices 242 and/or input devices 250 may comprise, forexample, devices such as touchscreen input devices, keyboards, mice,joysticks, accelerometers, light guns, game controllers, touch pads,touch sticks, push buttons, optical sensors, microphones, webcams,and/or any other devices that can provide user input. Additionally,various input devices 242 and/or input devices 250 may incorporatehaptic technologies in order to provide feedback to the user.

The client 206 may be configured to execute various applications such asa client application 245 and/or other applications. The clientapplication 245 is executed to allow a user to launch, join, play, orotherwise interact with interactive content 221 executed by thecomputing environment 203. Additionally, the client application 245facilitates rendering of video content that is streamed via the network209 by the interactivity application 215 and that is associated withinteractive content 221. The client application 245 is also configuredto obtain video content 223 over the network 209 from the computingenvironment 203 and render a screen on the display 249. To this end, theclient application 245 may include one or more video and audio playersto play out a media stream generated by an interactive application 227.In one embodiment, the client application 245 comprises a plug-in orother client-side code executed within a browser application.

The client 206 may be configured to execute applications beyond theclient application 245 such as, for example, browser applications, emailapplications, instant message applications, and/or other applications.In some embodiments, multiple clients 206 may be employed for one ormore users to interact with the interactive application 227.

The controller 207 may be configured to execute a controller application246 and/or other applications. The controller application 246 isexecuted to allow a user to view complementary content that is relatedto interactive content 221 requested by the user and/or video contentthat is rendered on a display device by the client application 245. Forexample, the complementary content may comprise text, video and/orimagery that is related to the video content rendered by the clientapplication 245. Additionally, the controller application 246 can alsocapture user inputs from a user and transmit the user inputs via thenetwork 209 to the interactivity application 215, which can update thevideo content provided to the client 206 and/or the complementarycontent provided to the controller 207 in response.

Accordingly, as briefly described above, the interactivity application215 can facilitate interactive experiences that involve client device206 that renders video content 223 provided by the interactivityapplication 215 via the network 209 as well as a controller device 207that is independently in communication with the interactivityapplication 215 via the network 209. In many embodiments, the controller207 can comprise a tablet device, a smartphone, or any other device withan integrated display 249. As noted above, the controller 207 can alsocomprise one or more input device 242 that can be captured by acontroller application 246 executed by the controller 207 andtransmitted via the network 209 to the interactivity application 215.

The depicted framework can facilitate various types of interactiveexperiences that can be provided to a user. For example, an interactiveapplication 227 can be requested by a user via a controller 207 to beconsumed in tandem with a client 206 such as a set top box and/or mediastreamer. In response, the interactivity application 215 can establish asession associated with the requested interactive application 227 onbehalf of the user account and/or a client 206 that is paired with theuser account. Accordingly, the interactivity application 215 can executean instance of interactive content 221 and provide video content 223 tothe client 206 as well as complementary content 224 to the controller207.

Interactive content 221 can comprise, for example, interactive movies,television programming, or other types of content in which the user cannavigate through a storyline and/or virtual world where the videocontent 223 provided to the client 206 varies depending upon actionstaken by the user in a user interface rendered by the controller 207. Insome examples, the complementary content 224 rendered on the controller207 can represent an alternate view, replay view and/or alternativecamera angle associated with live and/or recorded programming. Asanother example, the complementary content 224 can represent contentthat supplements the video content 223 rendered by the client 206. Forexample, programming rendered by the client 206 may involve a storylinesurrounding a criminal investigation. Accordingly, the complementarycontent 224 can comprise items that are evidence related to the criminalinvestigation as the objects are discovered and/or collected within thestoryline as it is viewed by a user as it is streamed by the client 206.Because the interactivity application 215 is providing the video content223 as well as complementary content 224, the interactivity application215 can determine when to update the complementary content 224 in such ascenario.

Interactive content 221 can also comprise interactive games and/oreducational content in which user inputs can be captured by thecontroller application 246 and provided to the interactivity application215 as input data 225 by the controller 207 via the network 209. Theinteractivity application 215 can then update the video content 223and/or complementary content 224 to reflect the user input. For example,an interactive game can comprise a trivia game, where users answerquestions and accumulate points for correctly answered questions. Thetrivia game can also comprise a competitive endeavor where users arepitted against other users who might be disparately located and/orcompeting by acting on video data rendered by the same client device 206(e.g., located within the vicinity of the same client device 206).

Interactive content 221 can also comprise, for example,high-twitch-action video game where a view of game action is presentedin the form of video content 223 rendered by the client device 206 andan alternative view associated with the game action is presented in theform of complementary content 224 that is rendered by the controller207. For example, the video content rendered by the client 206 andcomplementary content rendered by the controller 207 can representdiffering angles of the game action. As another example, the controller207 can render an alternative view of game action in combination with acontroller user interface, such as in the example shown in FIG. 1. Asanother example, the controller 207 can render a controller userinterface through which the user can interact with the interactivecontent 221, and these interactions can be captured by the controllerapplication 246 and provided to the interactivity application 215 in theform of input data 225.

Therefore, in the above examples as well as in other examples ofinteractive experiences that can be facilitated by the interactivityapplication 215, the interactivity application 215 can stream videocontent 223 and/or complementary content 224 to a client 206 andgenerate one or more interactive events that cause the video content 223and/or complementary content 224 to be updated. An interactive event cancorrespond to user input captured by the controller application 246 andtransmitted to the interactivity application 215 via the network 209. Aninteractive event can also correspond to a timecode being reached withininteractive content 221 that is being consumed by the client device 206and controller 207. In other words, the interactivity application 215can generate an interactive event in response to reaching a certainpoint within video content 223 and/or complementary content 224 that isbeing streamed via the network 209 to the client device 206 and/orcontroller 207, respectively.

An interactive event can also be triggered upon an occurrence in aninteractive game, educational content, or other type of interactivecontent 221. For example, upon reaching a certain milestone withininteractive content 221, the interactivity application 215 can generatean interactive event that causes the video content and/or complementarycontent to be updated.

Accordingly, in order to facilitate an interactive experience, theinteractivity application 215 can also facilitate registration of acontroller 207 with an interactive content 221 session. Registration ofa controller 207 allows the interactivity application 215 to providecomplementary content 224 associated with the video content 223 that isprovided to a corresponding client 206. In one embodiment, theinteractivity application 215 can request authentication of a user via acontroller 207 as well as obtain a request for interactive content via auser interface generated by the controller application 246, which is incommunication with the interactivity application 215. The user mayselect an appropriate client device 206 via the user interface that ispaired with an account of the user to receive video content 223associated with an interactive content 221 session. Upon receiving sucha request from the controller application 246, the interactivityapplication 215 can initiate the session including interactive content221 that involves appropriate video content 223 being transmitted to theselected client 206 as well as complementary content 224 being served tothe controller 207.

In another embodiment, the interactivity application 215 can obtain arequest for interactive content 221 from a client device 206, where therequest includes a user and/or device identifier with which theinteractivity application 215 can determine whether the user isauthorized the requested interactive content 221. In response, theinteractivity application 215 can establish an interactive content 221session and stream video content 223 associated with the requestedinteractive content 221 to the client device 206. Additionally, the usermay join the interactive content 221 session with a controller 207, suchas with a tablet device and/or smartphone. In response, theinteractivity application 215 can stream complementary content to thecontroller application 246 executed on the controller 207.

A user may join an interactive content 221 session with a controller 207in various ways. In one embodiment, the interactivity application 215can include within the video content 223 rendered by the client 206 asession identifier that a user can enter in the controller application246. The controller application 246 can provide the session identifierentered by the user to the interactivity application 215, which canvalidate the session identifier to identify which interactive content221 session with which to join the controller 207. Accordingly, such asession identifier can be unique among the various interactive content221 sessions being executed by the interactivity application 215. Insome embodiments, such a session identifier can comprise a barcode, suchas a quick response code (QR code) that is embedded within video content223 rendered by the client device 206. In this scenario, the user mayscan the QR code using a barcode scanner and/or camera integrated withinthe controller 207. The session identifier can also be obtained by thecontroller 207 from the client device 206 via a local area networkconnection between the client device 206 and controller 207.

Reference is now made to FIGS. 3A-3B, which illustrate an example of aninteractive experience facilitated by the interactivity application 215according to various embodiments of the disclosure. In the depictedexample, the client device 206 comprises a set-top box or a mediastreamer that is coupled to a display device 310. The client device 206is in communication with the interactivity application 215 via a networkconnection, such as the internet. The controller 207 is alsoindependently in communication with the interactivity application 215via a network connection. Accordingly, the interactivity application 215can provide video content 223 that is rendered by the client device 206on a display 310 as well as complementary content that is rendered bythe controller 207. As shown in FIG. 3A, the video content 223 can berelated to an interactive experience, such as an interactive game,educational content, or other types of content.

In the depicted example, the interactivity application 215 hastransmitted video content 223 and complementary content 224 to theclient device 206 and controller 207, respectively. The complementarycontent 224 includes content that is related to the video content 223.The complementary content 224, in the depicted example, also includes auser interface with which a user may interact to further the interactiveexperience. In the example of FIG. 3A, when the user selects an answerrelated to a question that can be presented as textual content on thecontroller 207 and/or rendered by the client 206, the response can betransmitted from the controller 207 to the interactivity application 215via the network 209.

In response, the interactivity application 215 can generate aninteractive event, which causes the interactivity application 215 togenerate an update to the video content 223 streamed to the client 206and/or the complementary content 224 streamed to the controller 207.Referring to FIG. 3B, shown is an example of how the interactivityapplication 215 can update the video content 223 and/or complementarycontent 224 in response to input data 225 obtained from the controller207. In the example of FIG. 3B, the user has provided user input via thecontroller application 246 executed by the controller 207, whichgenerates and communicates input data 225 corresponding to the user'sselection to the interactivity application 215 via the network 209.

The input data 225 corresponding to the particular interactive content221 session causes an interactive event, which in turn causes theinteractivity application 215 to update the video content 223 and/orcomplementary content 224 to reflect the user's input and/or selection.As shown in the example of FIG. 3B, such an update can take the form ofadvancing to a different level and/or stage in an interactive game. Inother examples described above, such an update can take the form ofadvancing a storyline in an interactive storytelling experience andgenerating a corresponding update to the video content 223 and/orcomplementary content 224.

Moving on to FIG. 4, shown is a flowchart that provides one example ofthe operation of a portion of the interactivity application 215according to various embodiments. It is understood that the flowchart ofFIG. 4 provides merely an example of the many different types offunctional arrangements that may be employed to implement the operationof the portion of the interactivity application 215 as described herein.As an alternative, the flowchart of FIG. 4 may be viewed as depicting anexample of steps of a method implemented in the computing environment203 (FIG. 2) according to one or more embodiments.

First, in box 401, the interactivity application 215 can obtain arequest for interactive content 221 on behalf of a client 206,controller 207 and/or a user. Such a request can take the form of arequest to execute an interactive application 227 that includesstreaming video content 223 and/or complementary content 224 from theinteractivity application 215. The interactivity application 215 canalso establish a session corresponding to the request in box 403. Thesession can identify a user account associated with the session, therequested interactive content 221, as well as an identifiercorresponding to a client device 206 and/or controller 207 associatedwith the session.

In box 405, the interactivity application 215 can then transmit videocontent 223 corresponding to the requested interactive content 221 tothe client device 206 associated with the session. In box 407, theinteractivity application 215 can also transmit complementary content224 corresponding to the requested interactive content 221 to the clientdevice 206 associated with the session. In the context of thisdisclosure, video content 223 and/or complementary content 224 can bestreamed to the client device 206 and/or controller 207, respectively.Alternatively, video content 223 and/or complementary content 224 canalso be downloaded to the client device 206 and/or controller 207 andsaved in a mass storage device that is accessible to either device.

In box 409, the interactivity application 215 can determine whether aninteractive event related to the interactive content 221 associated withthe session should be generated. As noted above, an interactive eventcan comprise user input from the controller 207, reaching a certainportion in a video stream, or any other event or occurrence. In responseto the interactive event, the interactivity application 215 can thendetermine in box 411 whether the video content 223 rendered by theclient 206 should be updated or changed in any way. If so, then in box412, the interactivity application 215 updates the video content 223correspondingly. In response to the interactive event, the interactivityapplication 215 can also determine in box 413 whether the complementarycontent 224 rendered by the controller 207 should be updated or changedin any way. If so, then in box 414, the interactivity application 215updates the complementary content 224 correspondingly.

Moving on to FIG. 5, shown is a flowchart that provides one example ofthe operation of a portion of the interactivity application 215according to various embodiments. It is understood that the flowchart ofFIG. 5 provides merely an example of the many different types offunctional arrangements that may be employed to implement the operationof the portion of the interactivity application 215 that facilitatesregistering of a controller device with an interactive content 221session. As an alternative, the flowchart of FIG. 5 may be viewed asdepicting an example of steps of a method implemented in the computingenvironment 203 (FIG. 2) according to one or more embodiments.

First, in box 501, the interactivity application 215 establishes aninteractive content 221 session associated with content requested onbehalf of a client 206. The session can also be associated with asession identifier that uniquely identifies the session with respect toother interactive content 221 sessions executed by the interactivityapplication 215. In box 502, the interactivity application 215 cancommunicate the session identifier 502 to one or more controllers 207.

In some embodiments, the session identifier can comprise a barcode, suchas a quick response code (QR code) that is embedded within video content223 rendered by the client device 206. In this scenario, the user mayscan the QR code using a barcode scanner and/or camera integrated withinthe controller 207. The session identifier can also be obtained by thecontroller 207 from the client device 206 via a local area networkconnection between the client device 206 and controller 207. In otherembodiments, the session identifier can be manually inputted into anapplication executed by the controller 207.

The controller 207 can transmit the session identifier along with anidentifier that identifies the controller 207 to the interactivityapplication 215. Accordingly, in box 503, the interactivity application215 can obtain the controller identifier corresponding to the controller207 as well as potentially the session identifier corresponding to theinteractive content 221 session. In box 505, the interactivityapplication 215 can register the controller 207 with the interactivecontent 221 session.

With reference to FIG. 6, shown is a schematic block diagram of thecomputing environment 203 according to an embodiment of the presentdisclosure. The computing environment 203 includes one or moreappropriate computing device 500. The appropriate computing device 500includes at least one processor circuit, for example, having a processor603 and a memory 606, both of which are coupled to a local interface609. To this end, the appropriate computing device 600 may comprise, forexample, at least one server computer or like device. The localinterface 609 may comprise, for example, a data bus with an accompanyingaddress/control bus or other bus structure as can be appreciated.

Stored in the memory 606 are both data and several components that areexecutable by the processor 603. In particular, stored in the memory 606and executable by the processor 603 is the interactivity application 215and potentially other applications. Also stored in the memory 606 may bea data store 212 and other data. In addition, an operating system may bestored in the memory 606 and executable by the processor 603.

It is understood that there may be other applications that are stored inthe memory 606 and are executable by the processor 603 as can beappreciated. Where any component discussed herein is implemented in theform of software, any one of a number of programming languages may beemployed such as, for example, C, C++, C#, Objective C, Java®,JavaScript®, Perl, PHP, Visual Basic®, Python®, Ruby, Delphi®, Flash®,or other programming languages.

A number of software components are stored in the memory 606 and areexecutable by the processor 603. In this respect, the term “executable”means a program file that is in a form that can ultimately be run by theprocessor 603. Examples of executable programs may be, for example, acompiled program that can be translated into machine code in a formatthat can be loaded into a random access portion of the memory 606 andrun by the processor 603, source code that may be expressed in properformat such as object code that is capable of being loaded into a randomaccess portion of the memory 606 and executed by the processor 603, orsource code that may be interpreted by another executable program togenerate instructions in a random access portion of the memory 606 to beexecuted by the processor 603, etc. An executable program may be storedin any portion or component of the memory 606 including, for example,random access memory (RAM), read-only memory (ROM), hard drive,solid-state drive, USB flash drive, memory card, optical disc such ascompact disc (CD) or digital versatile disc (DVD), floppy disk, magnetictape, or other memory components.

The memory 606 is defined herein as including both volatile andnonvolatile memory and data storage components. Volatile components arethose that do not retain data values upon loss of power. Nonvolatilecomponents are those that retain data upon a loss of power. Thus, thememory 606 may comprise, for example, random access memory (RAM),read-only memory (ROM), hard disk drives, solid-state drives, USB flashdrives, memory cards accessed via a memory card reader, floppy disksaccessed via an associated floppy disk drive, optical discs accessed viaan optical disc drive, magnetic tapes accessed via an appropriate tapedrive, and/or other memory components, or a combination of any two ormore of these memory components. In addition, the RAM may comprise, forexample, static random access memory (SRAM), dynamic random accessmemory (DRAM), or magnetic random access memory (MRAM) and other suchdevices. The ROM may comprise, for example, a programmable read-onlymemory (PROM), an erasable programmable read-only memory (EPROM), anelectrically erasable programmable read-only memory (EEPROM), or otherlike memory device.

Also, the processor 603 may represent multiple processors 603 and thememory 606 may represent multiple memories 606 that operate in parallelprocessing circuits, respectively. In such a case, the local interface609 may be an appropriate network that facilitates communication betweenany two of the multiple processors 603, between any processor 603 andany of the memories 606, or between any two of the memories 606, etc.The local interface 609 may comprise additional systems designed tocoordinate this communication, including, for example, performing loadbalancing. The processor 603 may be of electrical or of some otheravailable construction.

Although the interactivity application 215, and other various systemsdescribed herein may be embodied in software or code executed by generalpurpose hardware as discussed above, as an alternative the same may alsobe embodied in dedicated hardware or a combination of software/generalpurpose hardware and dedicated hardware. If embodied in dedicatedhardware, each can be implemented as a circuit or state machine thatemploys any one of or a combination of a number of technologies. Thesetechnologies may include, but are not limited to, discrete logiccircuits having logic gates for implementing various logic functionsupon an application of one or more data signals, application specificintegrated circuits having appropriate logic gates, or other components,etc. Such technologies are generally well known by those skilled in theart and, consequently, are not described in detail herein.

The flowcharts of FIG. 4-5 show the functionality and operation of animplementation of portions of the interactivity application 215. Ifembodied in software, each block may represent a module, segment, orportion of code that comprises program instructions to implement thespecified logical function(s). The program instructions may be embodiedin the form of source code that comprises human-readable statementswritten in a programming language or machine code that comprisesnumerical instructions recognizable by a suitable execution system suchas a processor 603 in a computer system or other system. The machinecode may be converted from the source code, etc. If embodied inhardware, each block may represent a circuit or a number ofinterconnected circuits to implement the specified logical function(s).

Although the flowcharts of FIG. 4-5 show a specific order of execution,it is understood that the order of execution may differ from that whichis depicted. For example, the order of execution of two or more blocksmay be scrambled relative to the order shown. Also, two or more blocksshown in succession in FIG. 4 may be executed concurrently or withpartial concurrence. Further, in some embodiments, one or more of theblocks shown in FIGS. 4-5 may be skipped or omitted. In addition, anynumber of counters, state variables, warning semaphores, or messagesmight be added to the logical flow described herein, for purposes ofenhanced utility, accounting, performance measurement, or providingtroubleshooting aids, etc. It is understood that all such variations arewithin the scope of the present disclosure.

Also, any logic or application described herein, including theinteractivity application 215, that comprises software or code can beembodied in any non-transitory computer-readable medium for use by or inconnection with an instruction execution system such as, for example, aprocessor 603 in a computer system or other system. In this sense, thelogic may comprise, for example, statements including instructions anddeclarations that can be fetched from the computer-readable medium andexecuted by the instruction execution system. In the context of thepresent disclosure, a “computer-readable medium” can be any medium thatcan contain, store, or maintain the logic or application describedherein for use by or in connection with the instruction executionsystem.

The computer-readable medium can comprise any one of many physical mediasuch as, for example, magnetic, optical, or semiconductor media. Morespecific examples of a suitable computer-readable medium would include,but are not limited to, magnetic tapes, magnetic floppy diskettes,magnetic hard drives, memory cards, solid-state drives, USB flashdrives, or optical discs. Also, the computer-readable medium may be arandom access memory (RAM) including, for example, static random accessmemory (SRAM) and dynamic random access memory (DRAM), or magneticrandom access memory (MRAM). In addition, the computer-readable mediummay be a read-only memory (ROM), a programmable read-only memory (PROM),an erasable programmable read-only memory (EPROM), an electricallyerasable programmable read-only memory (EEPROM), or other type of memorydevice.

It should be emphasized that the above-described embodiments of thepresent disclosure are merely possible examples of implementations setforth for a clear understanding of the principles of the disclosure.Many variations and modifications may be made to the above-describedembodiment(s) without departing substantially from the spirit andprinciples of the disclosure. All such modifications and variations areintended to be included herein within the scope of this disclosure andprotected by the following claims.

Therefore, having thus described the invention, at least the followingis claimed:
 1. A non-transitory computer-readable medium embodying aprogram executable in at least one computing device, the program, whenexecuted, configured to cause the at least one computing device to atleast: obtain a request to access an interactive application on behalfof a user account; identify video content associated with theinteractive application; embed a session identifier in a barcodedisplayed as a part of the video content; stream the video content to aclient device associated with the user account, the client device incommunication with the at least one computing device via a network;obtain the session identifier from a controller device in communicationwith the at least one computing device via the network; identifycomplementary content associated with the interactive application;stream the complementary content to the controller device; obtain a userinput from the controller device; determine whether at least one of thevideo content or the complementary content should be updated in responseto the user input; and update the at least one of the video content orthe complementary content in response to the user input.
 2. Thenon-transitory computer-readable medium of claim 1, wherein thecomplementary content comprises a controller user interface, thecontroller user interface facilitating obtaining the user input via aninput device associated with the controller device.
 3. Thenon-transitory computer-readable medium of claim 2, the program furthercausing the at least one computing device to at least: obtain an inputfrom the controller user interface in the controller device via thenetwork; generate an update of the video content in response to theinput; and initiate transmission of the update of the video content tothe client device via the network.
 4. The non-transitorycomputer-readable medium of claim 3, the program further causing the atleast one computing device to at least: generate an update of thecomplementary content in response to the input; and initiatetransmission of the update of the complementary content to thecontroller device via the network.
 5. A system, comprising: at least onecomputing device; and an application executable in the at least onecomputing device, the application configured to cause the at least onecomputing device to at least: obtain a request for interactive contentfrom a client device via a network; transmit video content correspondingto the interactive content via the network to the client device, thevideo content containing a session identifier corresponding to acontroller device, the session identifier embedded in a barcode placedin the video content; obtain the session identifier from the controllerdevice via the network; transmit complementary content corresponding tothe interactive content to the controller device in communication withthe at least one computing device via the network; generate aninteractive event corresponding to the interactive content; and transmitan update of at least one of the video content or the complementarycontent in response to the interactive event.
 6. The system of claim 5,wherein the client device is configured to render the video content on adisplay device via a display interface.
 7. The system of claim 5,wherein the controller device is configured to render the complementarycontent on a controller display.
 8. The system of claim 5, wherein theapplication further causes the at least one computing device to atleast: establish a session associated with the request; obtain acontroller identifier associated with the controller device from thecontroller device via the network; and register the controller devicewith the session based at least in part upon the controller identifier.9. The system of claim 5, wherein the interactive event furthercomprises a question and the at least one computing device transmits anupdate of at least one of the video content or the complementary contentin response to the interactive event by inserting a representation ofthe question into the video content.
 10. The system of claim 5, whereinthe application further causes the at least one computing device to atleast: obtain an input from the controller device via the network; andupdate at least one of the video content or the complementary content inresponse to the input.
 11. The system of claim 10, wherein the videocontent comprises textual content and the input from the controllerdevice comprises a selection related to the textual content.
 12. Thesystem of claim 10, wherein the video content comprises an interactivegame and the input from the controller device comprises navigation inputrelated to the interactive game.
 13. The system of claim 10, wherein thevideo content comprises interactive programming, the input from thecontroller device comprises a selection related to the interactiveprogramming, and the at least one of the video content or thecomplementary content is updated in response to the input by selecting avideo stream corresponding to the selection.
 14. The system of claim 13,wherein the video stream comprises an alternative camera angleassociated with the video content, the video stream being transmitted tothe controller device via the network.
 15. A method, comprising:obtaining, in at least one computing device, a request to execute aninteractive application on behalf of a user; identifying, in the atleast one computing device, a client device associated with the user,the client device in communication with the at least one computingdevice via a network; transmitting, from the at least one computingdevice, video content corresponding to the interactive application viathe network to the client device, the video content containing a sessionidentifier corresponding to a controller device, the session identifierembedded in a barcode placed in the video content; obtaining, in the atleast one computing device, the session identifier from the controllerdevice via the network; identifying, in the at least one computingdevice, the controller device associated with the user in response toreceiving the session identifier, the controller device in communicationwith the at least one computing device via the network; transmitting,from the at least one computing device, complementary contentcorresponding to the interactive application to the controller device;identifying, in the at least one computing device, an interactive eventcorresponding to the interactive application; and transmitting, from theat least one computing device, an update of at least one of the videocontent or the complementary content in response to the interactiveevent.
 16. The method of claim 15, wherein the complementary contentfurther comprises a controller user interface, the controller userinterface configured to facilitate obtaining user input via an inputdevice of the controller device.
 17. The method of claim 15, furthercomprising: generating, in the at least one computing device, a sessionassociated with the request; obtaining, in the at least one computingdevice, a controller identifier associated with the controller devicefrom the controller device via the network; and registering, in the atleast one computing device, the controller identifier with the session.18. The method of claim 15, wherein the client device is coupled to adisplay device.
 19. The method of claim 15, wherein the controllerdevice comprises at least one of a tablet computing device or asmartphone device.
 20. The method of claim 15, wherein the interactiveevent further comprises a question and transmitting an update of atleast one of the video content or the complementary content in responseto the interactive event further comprises updating the video contentwith the question.
 21. The method of claim 16, wherein the applicationfurther comprises: obtaining, from the controller user interface, aninput from the controller device via the network; and updating, in theat least one computing device, at least one of the video content or thecomplementary content in response to the input.
 22. The method of claim16, wherein the video content comprises textual content and the inputfrom the controller user interface comprises a selection related to thetextual content.
 23. The method of claim 16, wherein the video contentcomprises an interactive game and the input from the controller userinterface comprises navigation input related to the interactive game.24. A method, comprising: obtaining, in a controller device, a sessionidentifier embedded in a barcode displayed by a display of a clientdevice; generating, in the controller device, a request to executeinteractive content, the request incorporating the session identifier;transmitting, from the controller device, the request to at least onecomputing device, via a network; obtaining, via the controller device,complementary content associated with the interactive content from theat least one computing device via the network, the complementary contentfurther being associated with an interactive content sessioncorresponding to the client device in communication with the at leastone computing device via the network; transmitting, via the controllerdevice, user input to the at least one computing device, the user inputbeing associated with the interactive content; and obtaining, in thecontroller device, an update of the complementary content via thenetwork from the at least one computing device.
 25. The method of claim24, further comprising registering, via the controller device, thecontroller device with the interactive content session.
 26. The methodof claim 24, wherein the controller device further comprises one of asmartphone device or a tablet computing device.